您可以将待部署的Windows应用制作成Docker镜像,便于后续在集群中部署工作负载时进行拉取。镜像制作完成后,您可以在ACK集群中创建Windows节点池,并将镜像部署到Windows节点上。
步骤一:构建镜像并将其推送至镜像仓库
您需要将待部署的业务应用转换为自定义的Windows镜像。您可以使用Windows ServerCore基础镜像来制作自定义镜像。如果您的应用不需要过多依赖一些系统库,您也可以使用NanoServer镜像或者官方提供的PowerShell镜像。
下文以Windows ServerCore为基础镜像,介绍如何制作一个自定义的Docker镜像,该镜像中包含一个名为test.exe的可执行文件和一个名为hello.ps1的PowerShell脚本。部署Windows应用时,通常使用PowerShell脚本(.ps1文件)来进行预处理和初始化,例如设置环境变量、拷贝文件等。
下方示例Dockerfile中的FROM mcr.microsoft.com/windows/servercore:ltsc2019
使用的版本为ltsc2019,该镜像只能运行在Windows Server 2019中。如果您的节点需要使用 Windows Server 2022,请修改2019为2022,例如 mcr.microsoft.com/windows/servercore:ltsc2022
。
# 使用Windows Server Core作为基础镜像
FROM mcr.microsoft.com/windows/servercore:ltsc2019
# 设置工作目录
WORKDIR /app
# 复制本地文件到容器中
COPY test.exe .
COPY hello.ps1 .
# 运行PowerShell脚本
CMD ["powershell.exe", "./hello.ps1"]
编写好自定义Dockerfile后,您可以使用docker build
命令打包自定义Docker镜像。镜像构建完成后,您可以参见使用企业版实例构建镜像将其推送至阿里云ACR的镜像仓库,方便后期部署时进行一键拉取。
步骤二:创建节点池
您可以参见创建Windows节点池创建Windows节点池,在节点池维度对Windows节点进行统一管理,例如节点升级、节点扩缩容等。
步骤三:部署应用
创建Windows节点池后,您可以使用前文制作的Docker镜像来部署工作负载,具体步骤请参见创建Windows应用。